﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GUESTSMANAGEMENT.Controller
{
    public class User
    {
        //método que adiciona uma novo usuário
        public static void addUser(gmuser obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                context.AddTogmuser(obj);
                context.SaveChanges();
            }
        }


        //método que atualiza um usuário
        public static void updateUser(gmuser obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                gmuser user = context.gmuser.Where(usuario => usuario.CDUSER == obj.CDUSER).FirstOrDefault();
                context.ApplyPropertyChanges("gmuser", obj);
                context.SaveChanges();

            }
        }

        //método que pega um usuário pelo Id
        public static gmuser getByUser(int id)
        {
            //seta a usuário
            gmuser objUser = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objUser =
                (from user in context.gmuser
                 where user.CDUSER == id
                 select user).FirstOrDefault();
            }
            return objUser;
        }



        //método que retorna uma lista de usuário.
        public static List<gmuser> getGridList()
        {
            //seta a variável lista            
            List<gmuser> lista = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                IQueryable<gmuser> query =
                from user in context.gmuser
                select user;
                lista = query.ToList();
            }
            return lista;
        }

        //Retorna os dados do usuário por Id.
        public static gmuser RetornarUser(int id)
        {
            gmuser user = getByUser(id);
            return user;
        }


        //método para deletar usuário.
        public static void deletUser(gmuser obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                //verifica se o objeto a ser alterado existe
                gmuser user = context.gmuser.Where(usuario => usuario.CDUSER == obj.CDUSER).FirstOrDefault();

                //caso o objeto exista, apaga o objeto
                if (user != null)
                {
                    //apaga o objeto
                    context.DeleteObject(user);

                    //salva as alterações
                    context.SaveChanges();
                }
            }
        }
    }
}